package com.kexun.lds;


/*线程的等待与唤醒
* 包子铺线程 和  吃货线程  互斥  可以使用包子对象作为锁对象*/
public class Baozipu extends Thread{
    private  Baozi bz;
    public Baozipu(Baozi bz){
        this.bz=bz;
    }


    //设置线程任务 生产包子
    @Override
    public void run() {

        while(true){

            synchronized (bz){
                if(bz.flag==true){

                    try {
                        bz.wait();
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
                //被唤醒之后执行
                bz.pi="薄皮";
                bz.xian="猪肉";
                System.out.println("包子铺在生产"+bz.pi+bz.xian+"baozi");
                try {
                    Thread.sleep(2000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                bz.flag=true;
                bz.notify();
                System.out.println("包子做好了");
            }
        }
    }

}
